package com.xm.xmapp.tools;

import android.animation.AnimatorSet;
import android.animation.Keyframe;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.view.View;

public class MyAnimator {
	public static ObjectAnimator tada(View view) {
		return tada(view, 1f);
	}

	public static void test(final View view, float height, long time) {

		// Animation animation = AnimationUtils.loadAnimation(view.getContext(),
		// R.anim.testanim_enter);
		// view.startAnimation(animation);

		ObjectAnimator animator1 = ObjectAnimator.ofFloat(view, "translationY",
				0, -height, 0).setDuration(time);
//		ObjectAnimator animator2 = ObjectAnimator.ofFloat(view, "translationY",
//				height, -height / 3 * 2, height / 3 * 2).setDuration(time / 3 * 2);
//		ObjectAnimator animator3 = ObjectAnimator.ofFloat(view, "translationY",
//				height / 3 * 2, -height / 3, height / 3 , 0).setDuration(time / 2);

		AnimatorSet set = new AnimatorSet();
		// set.playTogether(animator1,animator2,animator3);
		set.playSequentially(animator1);

		set.start();

	}

	// public static class MyInterpolator implements Interpolator{
	//
	// @Override
	// public float getInterpolation(float input) {
	// // TODO Auto-generated method stub
	// return 0;
	// }

	// }

	public static ObjectAnimator tada(View view, float shakeFactor) {

		PropertyValuesHolder pvhScaleX = PropertyValuesHolder.ofKeyframe(
				View.SCALE_X, Keyframe.ofFloat(0f, 1f),
				Keyframe.ofFloat(.1f, .9f), Keyframe.ofFloat(.2f, .9f),
				Keyframe.ofFloat(.3f, 1.1f), Keyframe.ofFloat(.4f, 1.1f),
				Keyframe.ofFloat(.5f, 1.1f), Keyframe.ofFloat(.6f, 1.1f),
				Keyframe.ofFloat(.7f, 1.1f), Keyframe.ofFloat(.8f, 1.1f),
				Keyframe.ofFloat(.9f, 1.1f), Keyframe.ofFloat(1f, 1f));

		PropertyValuesHolder pvhScaleY = PropertyValuesHolder.ofKeyframe(
				View.SCALE_Y, Keyframe.ofFloat(0f, 1f),
				Keyframe.ofFloat(.1f, .9f), Keyframe.ofFloat(.2f, .9f),
				Keyframe.ofFloat(.3f, 1.1f), Keyframe.ofFloat(.4f, 1.1f),
				Keyframe.ofFloat(.5f, 1.1f), Keyframe.ofFloat(.6f, 1.1f),
				Keyframe.ofFloat(.7f, 1.1f), Keyframe.ofFloat(.8f, 1.1f),
				Keyframe.ofFloat(.9f, 1.1f), Keyframe.ofFloat(1f, 1f));

		PropertyValuesHolder pvhRotate = PropertyValuesHolder.ofKeyframe(
				View.ROTATION, Keyframe.ofFloat(0f, 0f),
				Keyframe.ofFloat(.1f, -3f * shakeFactor),
				Keyframe.ofFloat(.2f, -3f * shakeFactor),
				Keyframe.ofFloat(.3f, 3f * shakeFactor),
				Keyframe.ofFloat(.4f, -3f * shakeFactor),
				Keyframe.ofFloat(.5f, 3f * shakeFactor),
				Keyframe.ofFloat(.6f, -3f * shakeFactor),
				Keyframe.ofFloat(.7f, 3f * shakeFactor),
				Keyframe.ofFloat(.8f, -3f * shakeFactor),
				Keyframe.ofFloat(.9f, 3f * shakeFactor),
				Keyframe.ofFloat(1f, 0));

		return ObjectAnimator.ofPropertyValuesHolder(view, pvhScaleX,
				pvhScaleY, pvhRotate).setDuration(1000);
	}
	// public static ObjectAnimator nope(View view) {
	// int delta =
	// view.getResources().getDimensionPixelOffset(R.dimen.spacing_medium);
	//
	// PropertyValuesHolder pvhTranslateX =
	// PropertyValuesHolder.ofKeyframe(View.TRANSLATION_X,
	// Keyframe.ofFloat(0f, 0),
	// Keyframe.ofFloat(.10f, -delta),
	// Keyframe.ofFloat(.26f, delta),
	// Keyframe.ofFloat(.42f, -delta),
	// Keyframe.ofFloat(.58f, delta),
	// Keyframe.ofFloat(.74f, -delta),
	// Keyframe.ofFloat(.90f, delta),
	// Keyframe.ofFloat(1f, 0f)
	// );
	//
	// return ObjectAnimator.ofPropertyValuesHolder(view, pvhTranslateX).
	// setDuration(500);
	// }
}
